1. Field of the Invention
This invention relates to the field of computer systems and, more particularly, to URL rewriting.
2. Description of the Related Art
As web-based applications become more important to business and industry, system failure becomes more expensive, and highly reliable systems assume a greater importance. For example, a web site may handle financial, production, sales, marketing or media applications. Failure to provide these applications to clients for even a few minutes could mean thousands or millions of dollars in lost income.
One key strategy used to protect web infrastructure from external attacks is the isolation of an organization's internal servers through the use of reverse proxies and firewalls. More particularly, the internal servers of an organization may be configured to only communicate via certain channels through a firewall to a reverse proxy computer. In turn, the reverse proxy may send and receive communications to the internal servers on behalf of one or more clients. Only the reverse proxy may be able to communicate directly with client systems via the Internet.
Accordingly, a reverse proxy may receive a request for a web page from a client system, relay the request to an internal server through the firewall, receive the web page back from the internal server, and return the web page to the client. To allow client systems from to access content or services from the internal server without directly exposing the internal server on a public network, the reverse proxy may rewrite the Universal Resource Locators (URLs) of the returned web page to point to a reverse proxy for the internal server instead of pointing to the internal server itself. For example, the reverse proxy may rewrite each URL that points to the internal server on a returned web page by rewriting the URL to point to the reverse proxy, and by including an indication of the URL of the intranet server in the rewritten URLs. Accordingly, the client system which receives the web page may access only the reverse proxy through the returned URLs.
However, configuring the reverse proxy at the server-side to rewrite every internal server URL sent to a client may be difficult and time-consuming. Furthermore, server-side URL rewriting may consume significant computational resources.